home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / tetrix / gtetrix.h.z / gtetrix.h
C/C++ Source or Header  |  2002-04-08  |  3KB  |  94 lines

  1. /****************************************************************************
  2. ** $Id:  qt/gtetrix.h   3.0.3   edited Oct 12 12:18 $
  3. **
  4. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  5. **
  6. ** This file is part of an example program for Qt.  This example
  7. ** program may be used, distributed and modified without limitation.
  8. **
  9. *****************************************************************************/
  10.  
  11. #ifndef GTETRIX_H
  12. #define GTETRIX_H
  13.  
  14. #include "tpiece.h"
  15.  
  16.  
  17. class GenericTetrix
  18. {
  19. public:
  20.     GenericTetrix(int boardWidth = 10,int boardHeight = 22);
  21.     virtual ~GenericTetrix();
  22.  
  23.     void clearBoard(int fillRandomLines = 0);
  24.     void revealNextPiece(int revealIt);
  25.     void updateBoard(int x1,int y1,int x2,int y2,int dontUpdateBlanks = 0);
  26.     void updateNext(){if (showNext) showNextPiece();}
  27.     void hideBoard();
  28.     void showBoard();
  29.     void fillRandom(int line);
  30.  
  31.     void moveLeft(int steps = 1);
  32.     void moveRight(int steps = 1);
  33.     void rotateLeft();
  34.     void rotateRight();
  35.     void dropDown();
  36.     void oneLineDown();
  37.     void newPiece();
  38.     void removePiece();
  39.  
  40.     int  noOfClearLines()                     {return nClearLines;}
  41.     int  getLinesRemoved()                    {return nLinesRemoved;}
  42.     int  getPiecesDropped()                   {return nPiecesDropped;}
  43.     int  getScore()                           {return score;}
  44.     int  getLevel()                           {return level;}
  45.     int  boardHeight()                        {return height;}
  46.     int  boardWidth()                         {return width;}
  47.  
  48.     virtual void drawSquare(int x,int y,int value) = 0;
  49.     virtual void gameOver() = 0;
  50.  
  51.     virtual void startGame(int gameType = 0,int fillRandomLines = 0);
  52.     virtual void drawNextSquare(int x,int y,int value);
  53.     virtual void pieceDropped(int dropHeight);
  54.     virtual void updateRemoved(int noOfLines);
  55.     virtual void updateScore(int newScore);
  56.     virtual void updateLevel(int newLevel);
  57.  
  58. private:
  59.     void  draw(int x, int y, int value){drawSquare(x,height - y,value);}
  60.     void  removeFullLines();
  61.     void  removeLine(int line);
  62.     void  showPiece();
  63.     void  erasePiece();
  64.     void  internalPieceDropped(int dropHeight);
  65.     void  gluePiece();
  66.     void  showNextPiece(int erase = 0);
  67.     void  eraseNextPiece(){showNextPiece(1);};
  68.     int   canPosition(TetrixPiece &piece);    // Returns a boolean value.
  69.     int   canMoveTo(int xPosition, int line); // Returns a boolean value.
  70.     void  moveTo(int xPosition,int line);
  71.     void  position(TetrixPiece &piece);
  72.     void  optimizedMove(int newPos, int newLine,TetrixPiece &newPiece);
  73.     
  74.     int  &board(int x,int y){return boardPtr[width*y + x];}
  75.  
  76.     TetrixPiece currentPiece;
  77.     TetrixPiece nextPiece;
  78.     int         currentLine;
  79.     int         currentPos;
  80.     int         showNext;                    // Boolean variable.
  81.     int         nLinesRemoved;
  82.     int         nPiecesDropped;
  83.     int         score;
  84.     int         level;
  85.     int         gameID;
  86.     int         nClearLines;
  87.     int         width;
  88.     int         height;
  89.     int         *boardPtr;
  90. };
  91.  
  92.  
  93. #endif
  94.